package SecondeStage.MianXiangDuiXiang.AbstractClass.ClassMember;

public class ChildGame {
    public static void main(String[] args) {
//        int count = 0;
//        Child child1 = new Child("白骨精");
//        child1.jion();
//        count++;
//        Child child2 = new Child("狐狸精");
//        child2.jion();
//        count++;
//        Child child3 = new Child("老鼠精");
//        child3.jion();
//        count++;
//
//        System.out.println("共有"+count+"小孩加入了游戏");

        //但这样访问count很麻烦，因为count是一个局部变量，而且不能通过对象访问，由此引出类变量和类方法
        int count = 0;
        Child child1 = new Child("白骨精");
        child1.jion();
        child1.count++;
        Child child2 = new Child("狐狸精");
        child2.jion();
        child2.count++;
        Child child3 = new Child("老鼠精");
        child3.jion();
        child3.count++;
        // 类变量可以通过类名来访问
        System.out.println("共有"+Child.count+"小孩加入了游戏");
    }
}

class  Child{
    // 定义一个变量 count,是一个类变量(静态变量) static
    // 该变量的特点是会被Child类的所有实例对象共享
    // static类变量，在类加载的时候就生成了，即使没有创建对象实例也可以访问
    public static int count = 0;
    private String name;

    public Child(String name) {
        this.name = name;
    }

    public void jion(){
        System.out.println(name+"加入了游戏");
    }
}